{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "744bf7c1",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import scipy\n",
    "import matplotlib.pyplot as plt\n",
    "from pandas import Series\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码问题\n",
    "plt.rcParams['axes.unicode_minus'] = False  # 解决正负号乱码问题\n",
    "data2=[100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,70,50,30,10]\n",
    "data4=Series(data2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "b2c4d04a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=-0.19426813207986557, pvalue=0.35210232851725276)\n",
      "SpearmanrResult(correlation=-0.19426813207986557, pvalue=0.35210232851725276)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[5],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/20191231.csv', usecols=[11],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                #X1是RUL序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "    \n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n1 = x1.count()\n",
    "    y1 = Y1.dropna()\n",
    "    n2 = Y1.count()\n",
    "    \n",
    "    \n",
    "    data=[0 for i in range (25)]\n",
    "    data1=[0 for i in range (25)]\n",
    "    percent=[0 for i in range (25)]\n",
    "    \n",
    "    for i in range(0,n1,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n1 = n1 - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) == 100):\n",
    "            data[0]=data[0]+1\n",
    "        if(float(x1[i]) == 99):\n",
    "            data[1]=data[1]+1\n",
    "        if(float(x1[i]) == 98):\n",
    "            data[2]=data[2]+1\n",
    "        if(float(x1[i]) == 97):\n",
    "            data[3]=data[6]+1\n",
    "        if(float(x1[i]) == 96):\n",
    "            data[4]=data[4]+1\n",
    "        if(float(x1[i]) == 95):\n",
    "            data[5]=data[5]+1\n",
    "        if(float(x1[i]) == 94):\n",
    "            data[6]=data[6]+1\n",
    "        if(float(x1[i]) == 93):\n",
    "            data[7]=data[7]+1\n",
    "        if(float(x1[i]) == 92):\n",
    "            data[8]=data[8]+1\n",
    "        if(float(x1[i]) == 91):\n",
    "            data[9]=data[9]+1\n",
    "        if(float(x1[i]) == 90):\n",
    "            data[10]=data[10]+1\n",
    "        if(float(x1[i]) == 89):\n",
    "            data[11]=data[11]+1\n",
    "        if(float(x1[i]) == 88):\n",
    "            data[12]=data[12]+1\n",
    "        if(float(x1[i]) == 87):\n",
    "            data[13]=data[13]+1\n",
    "        if(float(x1[i]) == 86):\n",
    "            data[14]=data[14]+1\n",
    "        if(float(x1[i]) == 85):\n",
    "            data[15]=data[15]+1\n",
    "        if(float(x1[i]) == 84):\n",
    "            data[16]=data[16]+1\n",
    "        if(float(x1[i]) == 83):\n",
    "            data[17]=data[17]+1\n",
    "        if(float(x1[i]) == 82):\n",
    "            data[18]=data[18]+1\n",
    "        if(float(x1[i]) == 81):\n",
    "            data[19]=data[19]+1\n",
    "        if(float(x1[i]) == 80):\n",
    "            data[20]=data[20]+1\n",
    "        if(float(x1[i]) < 80 and float(x1[i]) >= 60):\n",
    "            data[21]=data[21]+1\n",
    "        if(float(x1[i]) < 60 and float(x1[i]) >= 40):\n",
    "            data[22]=data[22]+1\n",
    "        if(float(x1[i]) < 40 and float(x1[i]) >= 20):\n",
    "            data[23]=data[23]+1\n",
    "        if(float(x1[i]) < 20):\n",
    "            data[24]=data[24]+1\n",
    "    for i in range(0,n2,1):\n",
    "        if(y1[i] == '[nan]'):\n",
    "            n2 = n2 - 1\n",
    "            continue\n",
    "        y1[i] = y1[i].strip('[]')\n",
    "        if(float(y1[i]) == 100):\n",
    "            data1[0]=data1[0]+1\n",
    "        if(float(y1[i]) == 99):\n",
    "            data1[1]=data1[1]+1\n",
    "        if(float(y1[i]) == 98):\n",
    "            data1[2]=data1[2]+1\n",
    "        if(float(y1[i]) == 97):\n",
    "            data1[3]=data1[6]+1\n",
    "        if(float(y1[i]) == 96):\n",
    "            data1[4]=data1[4]+1\n",
    "        if(float(y1[i]) == 95):\n",
    "            data1[5]=data1[5]+1\n",
    "        if(float(y1[i]) == 94):\n",
    "            data1[6]=data1[6]+1\n",
    "        if(float(y1[i]) == 93):\n",
    "            data1[7]=data1[7]+1\n",
    "        if(float(y1[i]) == 92):\n",
    "            data1[8]=data1[8]+1\n",
    "        if(float(y1[i]) == 91):\n",
    "            data1[9]=data1[9]+1\n",
    "        if(float(y1[i]) == 90):\n",
    "            data1[10]=data1[10]+1\n",
    "        if(float(y1[i]) == 89):\n",
    "            data1[11]=data1[11]+1\n",
    "        if(float(y1[i]) == 88):\n",
    "            data1[12]=data1[12]+1\n",
    "        if(float(y1[i]) == 87):\n",
    "            data1[13]=data1[13]+1\n",
    "        if(float(y1[i]) == 86):\n",
    "            data1[14]=data1[14]+1\n",
    "        if(float(y1[i]) == 85):\n",
    "            data1[15]=data1[15]+1\n",
    "        if(float(y1[i]) == 84):\n",
    "            data1[16]=data1[16]+1\n",
    "        if(float(y1[i]) == 83):\n",
    "            data1[17]=data1[17]+1\n",
    "        if(float(y1[i]) == 82):\n",
    "            data1[18]=data1[18]+1\n",
    "        if(float(y1[i]) == 81):\n",
    "            data1[19]=data1[19]+1\n",
    "        if(float(y1[i]) == 80):\n",
    "            data1[20]=data1[20]+1\n",
    "        if(float(y1[i]) < 80 and float(y1[i]) >= 60):\n",
    "            data1[21]=data1[21]+1\n",
    "        if(float(y1[i]) < 60 and float(y1[i]) >= 40):\n",
    "            data1[22]=data1[22]+1\n",
    "        if(float(y1[i]) < 40 and float(y1[i]) >= 20):\n",
    "            data1[23]=data1[23]+1\n",
    "        if(float(y1[i]) < 20):\n",
    "            data1[24]=data1[24]+1\n",
    "    for i in range(24):\n",
    "        if(data1[i]!=0):\n",
    "            percent[i]=data[i]/data1[i]\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    data3=Series(percent)\n",
    "    r = data3.corr(data4, method='spearman')\n",
    "    print(scipy.stats.spearmanr(percent, data2))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "   \n",
    "  \n",
    "    #r_5\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "ab761995",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=0.24107182853218856, pvalue=0.24569488301190026)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[7],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/20191231.csv', usecols=[47],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                #X1是RUL序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "    \n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n1 = x1.count()\n",
    "    y1 = Y1.dropna()\n",
    "    n2 = Y1.count()\n",
    "    \n",
    "    data=[0 for i in range (25)]\n",
    "    data1=[0 for i in range (25)]\n",
    "    percent=[0 for i in range (25)]\n",
    "    \n",
    "    for i in range(0,n1,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n1 = n1 - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) == 100):\n",
    "            data[0]=data[0]+1\n",
    "        if(float(x1[i]) == 99):\n",
    "            data[1]=data[1]+1\n",
    "        if(float(x1[i]) == 98):\n",
    "            data[2]=data[2]+1\n",
    "        if(float(x1[i]) == 97):\n",
    "            data[3]=data[6]+1\n",
    "        if(float(x1[i]) == 96):\n",
    "            data[4]=data[4]+1\n",
    "        if(float(x1[i]) == 95):\n",
    "            data[5]=data[5]+1\n",
    "        if(float(x1[i]) == 94):\n",
    "            data[6]=data[6]+1\n",
    "        if(float(x1[i]) == 93):\n",
    "            data[7]=data[7]+1\n",
    "        if(float(x1[i]) == 92):\n",
    "            data[8]=data[8]+1\n",
    "        if(float(x1[i]) == 91):\n",
    "            data[9]=data[9]+1\n",
    "        if(float(x1[i]) == 90):\n",
    "            data[10]=data[10]+1\n",
    "        if(float(x1[i]) == 89):\n",
    "            data[11]=data[11]+1\n",
    "        if(float(x1[i]) == 88):\n",
    "            data[12]=data[12]+1\n",
    "        if(float(x1[i]) == 87):\n",
    "            data[13]=data[13]+1\n",
    "        if(float(x1[i]) == 86):\n",
    "            data[14]=data[14]+1\n",
    "        if(float(x1[i]) == 85):\n",
    "            data[15]=data[15]+1\n",
    "        if(float(x1[i]) == 84):\n",
    "            data[16]=data[16]+1\n",
    "        if(float(x1[i]) == 83):\n",
    "            data[17]=data[17]+1\n",
    "        if(float(x1[i]) == 82):\n",
    "            data[18]=data[18]+1\n",
    "        if(float(x1[i]) == 81):\n",
    "            data[19]=data[19]+1\n",
    "        if(float(x1[i]) == 80):\n",
    "            data[20]=data[20]+1\n",
    "        if(float(x1[i]) < 80 and float(x1[i]) >= 60):\n",
    "            data[21]=data[21]+1\n",
    "        if(float(x1[i]) < 60 and float(x1[i]) >= 40):\n",
    "            data[22]=data[22]+1\n",
    "        if(float(x1[i]) < 40 and float(x1[i]) >= 20):\n",
    "            data[23]=data[23]+1\n",
    "        if(float(x1[i]) < 20):\n",
    "            data[24]=data[24]+1\n",
    "    for i in range(0,n2,1):\n",
    "        if(y1[i] == '[nan]'):\n",
    "            n2 = n2 - 1\n",
    "            continue\n",
    "        y1[i] = y1[i].strip('[]')\n",
    "        if(float(y1[i]) == 100):\n",
    "            data1[0]=data1[0]+1\n",
    "        if(float(y1[i]) == 99):\n",
    "            data1[1]=data1[1]+1\n",
    "        if(float(y1[i]) == 98):\n",
    "            data1[2]=data1[2]+1\n",
    "        if(float(y1[i]) == 97):\n",
    "            data1[3]=data1[6]+1\n",
    "        if(float(y1[i]) == 96):\n",
    "            data1[4]=data1[4]+1\n",
    "        if(float(y1[i]) == 95):\n",
    "            data1[5]=data1[5]+1\n",
    "        if(float(y1[i]) == 94):\n",
    "            data1[6]=data1[6]+1\n",
    "        if(float(y1[i]) == 93):\n",
    "            data1[7]=data1[7]+1\n",
    "        if(float(y1[i]) == 92):\n",
    "            data1[8]=data1[8]+1\n",
    "        if(float(y1[i]) == 91):\n",
    "            data1[9]=data1[9]+1\n",
    "        if(float(y1[i]) == 90):\n",
    "            data1[10]=data1[10]+1\n",
    "        if(float(y1[i]) == 89):\n",
    "            data1[11]=data1[11]+1\n",
    "        if(float(y1[i]) == 88):\n",
    "            data1[12]=data1[12]+1\n",
    "        if(float(y1[i]) == 87):\n",
    "            data1[13]=data1[13]+1\n",
    "        if(float(y1[i]) == 86):\n",
    "            data1[14]=data1[14]+1\n",
    "        if(float(y1[i]) == 85):\n",
    "            data1[15]=data1[15]+1\n",
    "        if(float(y1[i]) == 84):\n",
    "            data1[16]=data1[16]+1\n",
    "        if(float(y1[i]) == 83):\n",
    "            data1[17]=data1[17]+1\n",
    "        if(float(y1[i]) == 82):\n",
    "            data1[18]=data1[18]+1\n",
    "        if(float(y1[i]) == 81):\n",
    "            data1[19]=data1[19]+1\n",
    "        if(float(y1[i]) == 80):\n",
    "            data1[20]=data1[20]+1\n",
    "        if(float(y1[i]) < 80 and float(y1[i]) >= 60):\n",
    "            data1[21]=data1[21]+1\n",
    "        if(float(y1[i]) < 60 and float(y1[i]) >= 40):\n",
    "            data1[22]=data1[22]+1\n",
    "        if(float(y1[i]) < 40 and float(y1[i]) >= 20):\n",
    "            data1[23]=data1[23]+1\n",
    "        if(float(y1[i]) < 20):\n",
    "            data1[24]=data1[24]+1\n",
    "    for i in range(24):\n",
    "        if(data1[i]!=0):\n",
    "            percent[i]=data[i]/data1[i]\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    data3=Series(percent)\n",
    "    r = data3.corr(data4, method='spearman')\n",
    "    print(scipy.stats.spearmanr(percent, data2))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "    #r_183"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "c5a2f5cb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=0.5031665428382666, pvalue=0.010350768908585783)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[9],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/20191231.csv', usecols=[49],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                #X1是RUL序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "    \n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n1 = x1.count()\n",
    "    y1 = Y1.dropna()\n",
    "    n2 = Y1.count()\n",
    "    \n",
    "    data=[0 for i in range (25)]\n",
    "    data1=[0 for i in range (25)]\n",
    "    percent=[0 for i in range (25)]\n",
    "    \n",
    "    for i in range(0,n1,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n1 = n1 - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) == 100):\n",
    "            data[0]=data[0]+1\n",
    "        if(float(x1[i]) == 99):\n",
    "            data[1]=data[1]+1\n",
    "        if(float(x1[i]) == 98):\n",
    "            data[2]=data[2]+1\n",
    "        if(float(x1[i]) == 97):\n",
    "            data[3]=data[6]+1\n",
    "        if(float(x1[i]) == 96):\n",
    "            data[4]=data[4]+1\n",
    "        if(float(x1[i]) == 95):\n",
    "            data[5]=data[5]+1\n",
    "        if(float(x1[i]) == 94):\n",
    "            data[6]=data[6]+1\n",
    "        if(float(x1[i]) == 93):\n",
    "            data[7]=data[7]+1\n",
    "        if(float(x1[i]) == 92):\n",
    "            data[8]=data[8]+1\n",
    "        if(float(x1[i]) == 91):\n",
    "            data[9]=data[9]+1\n",
    "        if(float(x1[i]) == 90):\n",
    "            data[10]=data[10]+1\n",
    "        if(float(x1[i]) == 89):\n",
    "            data[11]=data[11]+1\n",
    "        if(float(x1[i]) == 88):\n",
    "            data[12]=data[12]+1\n",
    "        if(float(x1[i]) == 87):\n",
    "            data[13]=data[13]+1\n",
    "        if(float(x1[i]) == 86):\n",
    "            data[14]=data[14]+1\n",
    "        if(float(x1[i]) == 85):\n",
    "            data[15]=data[15]+1\n",
    "        if(float(x1[i]) == 84):\n",
    "            data[16]=data[16]+1\n",
    "        if(float(x1[i]) == 83):\n",
    "            data[17]=data[17]+1\n",
    "        if(float(x1[i]) == 82):\n",
    "            data[18]=data[18]+1\n",
    "        if(float(x1[i]) == 81):\n",
    "            data[19]=data[19]+1\n",
    "        if(float(x1[i]) == 80):\n",
    "            data[20]=data[20]+1\n",
    "        if(float(x1[i]) < 80 and float(x1[i]) >= 60):\n",
    "            data[21]=data[21]+1\n",
    "        if(float(x1[i]) < 60 and float(x1[i]) >= 40):\n",
    "            data[22]=data[22]+1\n",
    "        if(float(x1[i]) < 40 and float(x1[i]) >= 20):\n",
    "            data[23]=data[23]+1\n",
    "        if(float(x1[i]) < 20):\n",
    "            data[24]=data[24]+1\n",
    "    for i in range(0,n2,1):\n",
    "        if(y1[i] == '[nan]'):\n",
    "            n2 = n2 - 1\n",
    "            continue\n",
    "        y1[i] = y1[i].strip('[]')\n",
    "        if(float(y1[i]) == 100):\n",
    "            data1[0]=data1[0]+1\n",
    "        if(float(y1[i]) == 99):\n",
    "            data1[1]=data1[1]+1\n",
    "        if(float(y1[i]) == 98):\n",
    "            data1[2]=data1[2]+1\n",
    "        if(float(y1[i]) == 97):\n",
    "            data1[3]=data1[6]+1\n",
    "        if(float(y1[i]) == 96):\n",
    "            data1[4]=data1[4]+1\n",
    "        if(float(y1[i]) == 95):\n",
    "            data1[5]=data1[5]+1\n",
    "        if(float(y1[i]) == 94):\n",
    "            data1[6]=data1[6]+1\n",
    "        if(float(y1[i]) == 93):\n",
    "            data1[7]=data1[7]+1\n",
    "        if(float(y1[i]) == 92):\n",
    "            data1[8]=data1[8]+1\n",
    "        if(float(y1[i]) == 91):\n",
    "            data1[9]=data1[9]+1\n",
    "        if(float(y1[i]) == 90):\n",
    "            data1[10]=data1[10]+1\n",
    "        if(float(y1[i]) == 89):\n",
    "            data1[11]=data1[11]+1\n",
    "        if(float(y1[i]) == 88):\n",
    "            data1[12]=data1[12]+1\n",
    "        if(float(y1[i]) == 87):\n",
    "            data1[13]=data1[13]+1\n",
    "        if(float(y1[i]) == 86):\n",
    "            data1[14]=data1[14]+1\n",
    "        if(float(y1[i]) == 85):\n",
    "            data1[15]=data1[15]+1\n",
    "        if(float(y1[i]) == 84):\n",
    "            data1[16]=data1[16]+1\n",
    "        if(float(y1[i]) == 83):\n",
    "            data1[17]=data1[17]+1\n",
    "        if(float(y1[i]) == 82):\n",
    "            data1[18]=data1[18]+1\n",
    "        if(float(y1[i]) == 81):\n",
    "            data1[19]=data1[19]+1\n",
    "        if(float(y1[i]) == 80):\n",
    "            data1[20]=data1[20]+1\n",
    "        if(float(y1[i]) < 80 and float(y1[i]) >= 60):\n",
    "            data1[21]=data1[21]+1\n",
    "        if(float(y1[i]) < 60 and float(y1[i]) >= 40):\n",
    "            data1[22]=data1[22]+1\n",
    "        if(float(y1[i]) < 40 and float(y1[i]) >= 20):\n",
    "            data1[23]=data1[23]+1\n",
    "        if(float(y1[i]) < 20):\n",
    "            data1[24]=data1[24]+1\n",
    "    for i in range(24):\n",
    "        if(data1[i]!=0):\n",
    "            percent[i]=data[i]/data1[i]\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    data3=Series(percent)\n",
    "    r = data3.corr(data4, method='spearman')\n",
    "    print(scipy.stats.spearmanr(percent, data2))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "    #r_184"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "986cdafc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=0.3096160832596756, pvalue=0.13203755880490786)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[11],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/20191231.csv', usecols=[51],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                #X1是RUL序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "    \n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n1 = x1.count()\n",
    "    y1 = Y1.dropna()\n",
    "    n2 = Y1.count()\n",
    "    \n",
    "    data=[0 for i in range (25)]\n",
    "    data1=[0 for i in range (25)]\n",
    "    percent=[0 for i in range (25)]\n",
    "    \n",
    "    for i in range(0,n1,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n1 = n1 - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) == 100):\n",
    "            data[0]=data[0]+1\n",
    "        if(float(x1[i]) == 99):\n",
    "            data[1]=data[1]+1\n",
    "        if(float(x1[i]) == 98):\n",
    "            data[2]=data[2]+1\n",
    "        if(float(x1[i]) == 97):\n",
    "            data[3]=data[6]+1\n",
    "        if(float(x1[i]) == 96):\n",
    "            data[4]=data[4]+1\n",
    "        if(float(x1[i]) == 95):\n",
    "            data[5]=data[5]+1\n",
    "        if(float(x1[i]) == 94):\n",
    "            data[6]=data[6]+1\n",
    "        if(float(x1[i]) == 93):\n",
    "            data[7]=data[7]+1\n",
    "        if(float(x1[i]) == 92):\n",
    "            data[8]=data[8]+1\n",
    "        if(float(x1[i]) == 91):\n",
    "            data[9]=data[9]+1\n",
    "        if(float(x1[i]) == 90):\n",
    "            data[10]=data[10]+1\n",
    "        if(float(x1[i]) == 89):\n",
    "            data[11]=data[11]+1\n",
    "        if(float(x1[i]) == 88):\n",
    "            data[12]=data[12]+1\n",
    "        if(float(x1[i]) == 87):\n",
    "            data[13]=data[13]+1\n",
    "        if(float(x1[i]) == 86):\n",
    "            data[14]=data[14]+1\n",
    "        if(float(x1[i]) == 85):\n",
    "            data[15]=data[15]+1\n",
    "        if(float(x1[i]) == 84):\n",
    "            data[16]=data[16]+1\n",
    "        if(float(x1[i]) == 83):\n",
    "            data[17]=data[17]+1\n",
    "        if(float(x1[i]) == 82):\n",
    "            data[18]=data[18]+1\n",
    "        if(float(x1[i]) == 81):\n",
    "            data[19]=data[19]+1\n",
    "        if(float(x1[i]) == 80):\n",
    "            data[20]=data[20]+1\n",
    "        if(float(x1[i]) < 80 and float(x1[i]) >= 60):\n",
    "            data[21]=data[21]+1\n",
    "        if(float(x1[i]) < 60 and float(x1[i]) >= 40):\n",
    "            data[22]=data[22]+1\n",
    "        if(float(x1[i]) < 40 and float(x1[i]) >= 20):\n",
    "            data[23]=data[23]+1\n",
    "        if(float(x1[i]) < 20):\n",
    "            data[24]=data[24]+1\n",
    "    for i in range(0,n2,1):\n",
    "        if(y1[i] == '[nan]'):\n",
    "            n2 = n2 - 1\n",
    "            continue\n",
    "        y1[i] = y1[i].strip('[]')\n",
    "        if(float(y1[i]) == 100):\n",
    "            data1[0]=data1[0]+1\n",
    "        if(float(y1[i]) == 99):\n",
    "            data1[1]=data1[1]+1\n",
    "        if(float(y1[i]) == 98):\n",
    "            data1[2]=data1[2]+1\n",
    "        if(float(y1[i]) == 97):\n",
    "            data1[3]=data1[6]+1\n",
    "        if(float(y1[i]) == 96):\n",
    "            data1[4]=data1[4]+1\n",
    "        if(float(y1[i]) == 95):\n",
    "            data1[5]=data1[5]+1\n",
    "        if(float(y1[i]) == 94):\n",
    "            data1[6]=data1[6]+1\n",
    "        if(float(y1[i]) == 93):\n",
    "            data1[7]=data1[7]+1\n",
    "        if(float(y1[i]) == 92):\n",
    "            data1[8]=data1[8]+1\n",
    "        if(float(y1[i]) == 91):\n",
    "            data1[9]=data1[9]+1\n",
    "        if(float(y1[i]) == 90):\n",
    "            data1[10]=data1[10]+1\n",
    "        if(float(y1[i]) == 89):\n",
    "            data1[11]=data1[11]+1\n",
    "        if(float(y1[i]) == 88):\n",
    "            data1[12]=data1[12]+1\n",
    "        if(float(y1[i]) == 87):\n",
    "            data1[13]=data1[13]+1\n",
    "        if(float(y1[i]) == 86):\n",
    "            data1[14]=data1[14]+1\n",
    "        if(float(y1[i]) == 85):\n",
    "            data1[15]=data1[15]+1\n",
    "        if(float(y1[i]) == 84):\n",
    "            data1[16]=data1[16]+1\n",
    "        if(float(y1[i]) == 83):\n",
    "            data1[17]=data1[17]+1\n",
    "        if(float(y1[i]) == 82):\n",
    "            data1[18]=data1[18]+1\n",
    "        if(float(y1[i]) == 81):\n",
    "            data1[19]=data1[19]+1\n",
    "        if(float(y1[i]) == 80):\n",
    "            data1[20]=data1[20]+1\n",
    "        if(float(y1[i]) < 80 and float(y1[i]) >= 60):\n",
    "            data1[21]=data1[21]+1\n",
    "        if(float(y1[i]) < 60 and float(y1[i]) >= 40):\n",
    "            data1[22]=data1[22]+1\n",
    "        if(float(y1[i]) < 40 and float(y1[i]) >= 20):\n",
    "            data1[23]=data1[23]+1\n",
    "        if(float(y1[i]) < 20):\n",
    "            data1[24]=data1[24]+1\n",
    "    for i in range(24):\n",
    "        if(data1[i]!=0):\n",
    "            percent[i]=data[i]/data1[i]\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    data3=Series(percent)\n",
    "    r = data3.corr(data4, method='spearman')\n",
    "    print(scipy.stats.spearmanr(percent, data2))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "    #r_187"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "3e408fb8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=0.3692744729379982, pvalue=0.0994683572687256)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[13],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/20191231.csv', usecols=[67],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                #X1是RUL序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "    \n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n1 = x1.count()\n",
    "    y1 = Y1.dropna()\n",
    "    n2 = Y1.count()\n",
    "    \n",
    "    data=[0 for i in range (25)]\n",
    "    data1=[0 for i in range (25)]\n",
    "    percent=[0 for i in range (25)]\n",
    "    \n",
    "    for i in range(0,n1,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n1 = n1 - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) == 100):\n",
    "            data[0]=data[0]+1\n",
    "        if(float(x1[i]) == 99):\n",
    "            data[1]=data[1]+1\n",
    "        if(float(x1[i]) == 98):\n",
    "            data[2]=data[2]+1\n",
    "        if(float(x1[i]) == 97):\n",
    "            data[3]=data[6]+1\n",
    "        if(float(x1[i]) == 96):\n",
    "            data[4]=data[4]+1\n",
    "        if(float(x1[i]) == 95):\n",
    "            data[5]=data[5]+1\n",
    "        if(float(x1[i]) == 94):\n",
    "            data[6]=data[6]+1\n",
    "        if(float(x1[i]) == 93):\n",
    "            data[7]=data[7]+1\n",
    "        if(float(x1[i]) == 92):\n",
    "            data[8]=data[8]+1\n",
    "        if(float(x1[i]) == 91):\n",
    "            data[9]=data[9]+1\n",
    "        if(float(x1[i]) == 90):\n",
    "            data[10]=data[10]+1\n",
    "        if(float(x1[i]) == 89):\n",
    "            data[11]=data[11]+1\n",
    "        if(float(x1[i]) == 88):\n",
    "            data[12]=data[12]+1\n",
    "        if(float(x1[i]) == 87):\n",
    "            data[13]=data[13]+1\n",
    "        if(float(x1[i]) == 86):\n",
    "            data[14]=data[14]+1\n",
    "        if(float(x1[i]) == 85):\n",
    "            data[15]=data[15]+1\n",
    "        if(float(x1[i]) == 84):\n",
    "            data[16]=data[16]+1\n",
    "        if(float(x1[i]) == 83):\n",
    "            data[17]=data[17]+1\n",
    "        if(float(x1[i]) == 82):\n",
    "            data[18]=data[18]+1\n",
    "        if(float(x1[i]) == 81):\n",
    "            data[19]=data[19]+1\n",
    "        if(float(x1[i]) == 80):\n",
    "            data[20]=data[20]+1\n",
    "        if(float(x1[i]) < 80 and float(x1[i]) >= 60):\n",
    "            data[21]=data[21]+1\n",
    "        if(float(x1[i]) < 60 and float(x1[i]) >= 40):\n",
    "            data[22]=data[22]+1\n",
    "        if(float(x1[i]) < 40 and float(x1[i]) >= 20):\n",
    "            data[23]=data[23]+1\n",
    "        if(float(x1[i]) < 20):\n",
    "            data[24]=data[24]+1\n",
    "    for i in range(0,n2,1):\n",
    "        if(y1[i] == '[nan]'):\n",
    "            n2 = n2 - 1\n",
    "            continue\n",
    "        y1[i] = y1[i].strip('[]')\n",
    "        if(float(y1[i]) == 100):\n",
    "            data1[0]=data1[0]+1\n",
    "        if(float(y1[i]) == 99):\n",
    "            data1[1]=data1[1]+1\n",
    "        if(float(y1[i]) == 98):\n",
    "            data1[2]=data1[2]+1\n",
    "        if(float(y1[i]) == 97):\n",
    "            data1[3]=data1[6]+1\n",
    "        if(float(y1[i]) == 96):\n",
    "            data1[4]=data1[4]+1\n",
    "        if(float(y1[i]) == 95):\n",
    "            data1[5]=data1[5]+1\n",
    "        if(float(y1[i]) == 94):\n",
    "            data1[6]=data1[6]+1\n",
    "        if(float(y1[i]) == 93):\n",
    "            data1[7]=data1[7]+1\n",
    "        if(float(y1[i]) == 92):\n",
    "            data1[8]=data1[8]+1\n",
    "        if(float(y1[i]) == 91):\n",
    "            data1[9]=data1[9]+1\n",
    "        if(float(y1[i]) == 90):\n",
    "            data1[10]=data1[10]+1\n",
    "        if(float(y1[i]) == 89):\n",
    "            data1[11]=data1[11]+1\n",
    "        if(float(y1[i]) == 88):\n",
    "            data1[12]=data1[12]+1\n",
    "        if(float(y1[i]) == 87):\n",
    "            data1[13]=data1[13]+1\n",
    "        if(float(y1[i]) == 86):\n",
    "            data1[14]=data1[14]+1\n",
    "        if(float(y1[i]) == 85):\n",
    "            data1[15]=data1[15]+1\n",
    "        if(float(y1[i]) == 84):\n",
    "            data1[16]=data1[16]+1\n",
    "        if(float(y1[i]) == 83):\n",
    "            data1[17]=data1[17]+1\n",
    "        if(float(y1[i]) == 82):\n",
    "            data1[18]=data1[18]+1\n",
    "        if(float(y1[i]) == 81):\n",
    "            data1[19]=data1[19]+1\n",
    "        if(float(y1[i]) == 80):\n",
    "            data1[20]=data1[20]+1\n",
    "        if(float(y1[i]) < 80 and float(y1[i]) >= 60):\n",
    "            data1[21]=data1[21]+1\n",
    "        if(float(y1[i]) < 60 and float(y1[i]) >= 40):\n",
    "            data1[22]=data1[22]+1\n",
    "        if(float(y1[i]) < 40 and float(y1[i]) >= 20):\n",
    "            data1[23]=data1[23]+1\n",
    "        if(float(y1[i]) < 20):\n",
    "            data1[24]=data1[24]+1\n",
    "    for i in range(24):\n",
    "        if(data1[i]!=0):\n",
    "            percent[i]=data[i]/data1[i]\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    data3=Series(percent)\n",
    "    r = data3.corr(data4, method='spearman')\n",
    "    print(scipy.stats.spearmanr(percent, data2))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "    #r_195"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "a41b3517",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=0.3396831102433787, pvalue=0.09665680981276147)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[15],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/20191231.csv', usecols=[71],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                #X1是RUL序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "    \n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n1 = x1.count()\n",
    "    y1 = Y1.dropna()\n",
    "    n2 = Y1.count()\n",
    "    \n",
    "    data=[0 for i in range (25)]\n",
    "    data1=[0 for i in range (25)]\n",
    "    percent=[0 for i in range (25)]\n",
    "    \n",
    "    for i in range(0,n1,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n1 = n1 - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) == 100):\n",
    "            data[0]=data[0]+1\n",
    "        if(float(x1[i]) == 99):\n",
    "            data[1]=data[1]+1\n",
    "        if(float(x1[i]) == 98):\n",
    "            data[2]=data[2]+1\n",
    "        if(float(x1[i]) == 97):\n",
    "            data[3]=data[6]+1\n",
    "        if(float(x1[i]) == 96):\n",
    "            data[4]=data[4]+1\n",
    "        if(float(x1[i]) == 95):\n",
    "            data[5]=data[5]+1\n",
    "        if(float(x1[i]) == 94):\n",
    "            data[6]=data[6]+1\n",
    "        if(float(x1[i]) == 93):\n",
    "            data[7]=data[7]+1\n",
    "        if(float(x1[i]) == 92):\n",
    "            data[8]=data[8]+1\n",
    "        if(float(x1[i]) == 91):\n",
    "            data[9]=data[9]+1\n",
    "        if(float(x1[i]) == 90):\n",
    "            data[10]=data[10]+1\n",
    "        if(float(x1[i]) == 89):\n",
    "            data[11]=data[11]+1\n",
    "        if(float(x1[i]) == 88):\n",
    "            data[12]=data[12]+1\n",
    "        if(float(x1[i]) == 87):\n",
    "            data[13]=data[13]+1\n",
    "        if(float(x1[i]) == 86):\n",
    "            data[14]=data[14]+1\n",
    "        if(float(x1[i]) == 85):\n",
    "            data[15]=data[15]+1\n",
    "        if(float(x1[i]) == 84):\n",
    "            data[16]=data[16]+1\n",
    "        if(float(x1[i]) == 83):\n",
    "            data[17]=data[17]+1\n",
    "        if(float(x1[i]) == 82):\n",
    "            data[18]=data[18]+1\n",
    "        if(float(x1[i]) == 81):\n",
    "            data[19]=data[19]+1\n",
    "        if(float(x1[i]) == 80):\n",
    "            data[20]=data[20]+1\n",
    "        if(float(x1[i]) < 80 and float(x1[i]) >= 60):\n",
    "            data[21]=data[21]+1\n",
    "        if(float(x1[i]) < 60 and float(x1[i]) >= 40):\n",
    "            data[22]=data[22]+1\n",
    "        if(float(x1[i]) < 40 and float(x1[i]) >= 20):\n",
    "            data[23]=data[23]+1\n",
    "        if(float(x1[i]) < 20):\n",
    "            data[24]=data[24]+1\n",
    "    for i in range(0,n2,1):\n",
    "        if(y1[i] == '[nan]'):\n",
    "            n2 = n2 - 1\n",
    "            continue\n",
    "        y1[i] = y1[i].strip('[]')\n",
    "        if(float(y1[i]) == 100):\n",
    "            data1[0]=data1[0]+1\n",
    "        if(float(y1[i]) == 99):\n",
    "            data1[1]=data1[1]+1\n",
    "        if(float(y1[i]) == 98):\n",
    "            data1[2]=data1[2]+1\n",
    "        if(float(y1[i]) == 97):\n",
    "            data1[3]=data1[6]+1\n",
    "        if(float(y1[i]) == 96):\n",
    "            data1[4]=data1[4]+1\n",
    "        if(float(y1[i]) == 95):\n",
    "            data1[5]=data1[5]+1\n",
    "        if(float(y1[i]) == 94):\n",
    "            data1[6]=data1[6]+1\n",
    "        if(float(y1[i]) == 93):\n",
    "            data1[7]=data1[7]+1\n",
    "        if(float(y1[i]) == 92):\n",
    "            data1[8]=data1[8]+1\n",
    "        if(float(y1[i]) == 91):\n",
    "            data1[9]=data1[9]+1\n",
    "        if(float(y1[i]) == 90):\n",
    "            data1[10]=data1[10]+1\n",
    "        if(float(y1[i]) == 89):\n",
    "            data1[11]=data1[11]+1\n",
    "        if(float(y1[i]) == 88):\n",
    "            data1[12]=data1[12]+1\n",
    "        if(float(y1[i]) == 87):\n",
    "            data1[13]=data1[13]+1\n",
    "        if(float(y1[i]) == 86):\n",
    "            data1[14]=data1[14]+1\n",
    "        if(float(y1[i]) == 85):\n",
    "            data1[15]=data1[15]+1\n",
    "        if(float(y1[i]) == 84):\n",
    "            data1[16]=data1[16]+1\n",
    "        if(float(y1[i]) == 83):\n",
    "            data1[17]=data1[17]+1\n",
    "        if(float(y1[i]) == 82):\n",
    "            data1[18]=data1[18]+1\n",
    "        if(float(y1[i]) == 81):\n",
    "            data1[19]=data1[19]+1\n",
    "        if(float(y1[i]) == 80):\n",
    "            data1[20]=data1[20]+1\n",
    "        if(float(y1[i]) < 80 and float(y1[i]) >= 60):\n",
    "            data1[21]=data1[21]+1\n",
    "        if(float(y1[i]) < 60 and float(y1[i]) >= 40):\n",
    "            data1[22]=data1[22]+1\n",
    "        if(float(y1[i]) < 40 and float(y1[i]) >= 20):\n",
    "            data1[23]=data1[23]+1\n",
    "        if(float(y1[i]) < 20):\n",
    "            data1[24]=data1[24]+1\n",
    "    for i in range(24):\n",
    "        if(data1[i]!=0):\n",
    "            percent[i]=data[i]/data1[i]\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    data3=Series(percent)\n",
    "    r = data3.corr(data4, method='spearman')\n",
    "    print(scipy.stats.spearmanr(percent, data2))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "    #r_197"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "441881d2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=0.004231332708718793, pvalue=0.5661527850684047)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[17],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/20191231.csv', usecols=[75],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                #X1是RUL序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "    \n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n1 = x1.count()\n",
    "    y1 = Y1.dropna()\n",
    "    n2 = Y1.count()\n",
    "    \n",
    "    data=[0 for i in range (25)]\n",
    "    data1=[0 for i in range (25)]\n",
    "    percent=[0 for i in range (25)]\n",
    "    \n",
    "    for i in range(0,n1,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n1 = n1 - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) == 100):\n",
    "            data[0]=data[0]+1\n",
    "        if(float(x1[i]) == 99):\n",
    "            data[1]=data[1]+1\n",
    "        if(float(x1[i]) == 98):\n",
    "            data[2]=data[2]+1\n",
    "        if(float(x1[i]) == 97):\n",
    "            data[3]=data[6]+1\n",
    "        if(float(x1[i]) == 96):\n",
    "            data[4]=data[4]+1\n",
    "        if(float(x1[i]) == 95):\n",
    "            data[5]=data[5]+1\n",
    "        if(float(x1[i]) == 94):\n",
    "            data[6]=data[6]+1\n",
    "        if(float(x1[i]) == 93):\n",
    "            data[7]=data[7]+1\n",
    "        if(float(x1[i]) == 92):\n",
    "            data[8]=data[8]+1\n",
    "        if(float(x1[i]) == 91):\n",
    "            data[9]=data[9]+1\n",
    "        if(float(x1[i]) == 90):\n",
    "            data[10]=data[10]+1\n",
    "        if(float(x1[i]) == 89):\n",
    "            data[11]=data[11]+1\n",
    "        if(float(x1[i]) == 88):\n",
    "            data[12]=data[12]+1\n",
    "        if(float(x1[i]) == 87):\n",
    "            data[13]=data[13]+1\n",
    "        if(float(x1[i]) == 86):\n",
    "            data[14]=data[14]+1\n",
    "        if(float(x1[i]) == 85):\n",
    "            data[15]=data[15]+1\n",
    "        if(float(x1[i]) == 84):\n",
    "            data[16]=data[16]+1\n",
    "        if(float(x1[i]) == 83):\n",
    "            data[17]=data[17]+1\n",
    "        if(float(x1[i]) == 82):\n",
    "            data[18]=data[18]+1\n",
    "        if(float(x1[i]) == 81):\n",
    "            data[19]=data[19]+1\n",
    "        if(float(x1[i]) == 80):\n",
    "            data[20]=data[20]+1\n",
    "        if(float(x1[i]) < 80 and float(x1[i]) >= 60):\n",
    "            data[21]=data[21]+1\n",
    "        if(float(x1[i]) < 60 and float(x1[i]) >= 40):\n",
    "            data[22]=data[22]+1\n",
    "        if(float(x1[i]) < 40 and float(x1[i]) >= 20):\n",
    "            data[23]=data[23]+1\n",
    "        if(float(x1[i]) < 20):\n",
    "            data[24]=data[24]+1\n",
    "    for i in range(0,n2,1):\n",
    "        if(y1[i] == '[nan]'):\n",
    "            n2 = n2 - 1\n",
    "            continue\n",
    "        y1[i] = y1[i].strip('[]')\n",
    "        if(float(y1[i]) == 100):\n",
    "            data1[0]=data1[0]+1\n",
    "        if(float(y1[i]) == 99):\n",
    "            data1[1]=data1[1]+1\n",
    "        if(float(y1[i]) == 98):\n",
    "            data1[2]=data1[2]+1\n",
    "        if(float(y1[i]) == 97):\n",
    "            data1[3]=data1[6]+1\n",
    "        if(float(y1[i]) == 96):\n",
    "            data1[4]=data1[4]+1\n",
    "        if(float(y1[i]) == 95):\n",
    "            data1[5]=data1[5]+1\n",
    "        if(float(y1[i]) == 94):\n",
    "            data1[6]=data1[6]+1\n",
    "        if(float(y1[i]) == 93):\n",
    "            data1[7]=data1[7]+1\n",
    "        if(float(y1[i]) == 92):\n",
    "            data1[8]=data1[8]+1\n",
    "        if(float(y1[i]) == 91):\n",
    "            data1[9]=data1[9]+1\n",
    "        if(float(y1[i]) == 90):\n",
    "            data1[10]=data1[10]+1\n",
    "        if(float(y1[i]) == 89):\n",
    "            data1[11]=data1[11]+1\n",
    "        if(float(y1[i]) == 88):\n",
    "            data1[12]=data1[12]+1\n",
    "        if(float(y1[i]) == 87):\n",
    "            data1[13]=data1[13]+1\n",
    "        if(float(y1[i]) == 86):\n",
    "            data1[14]=data1[14]+1\n",
    "        if(float(y1[i]) == 85):\n",
    "            data1[15]=data1[15]+1\n",
    "        if(float(y1[i]) == 84):\n",
    "            data1[16]=data1[16]+1\n",
    "        if(float(y1[i]) == 83):\n",
    "            data1[17]=data1[17]+1\n",
    "        if(float(y1[i]) == 82):\n",
    "            data1[18]=data1[18]+1\n",
    "        if(float(y1[i]) == 81):\n",
    "            data1[19]=data1[19]+1\n",
    "        if(float(y1[i]) == 80):\n",
    "            data1[20]=data1[20]+1\n",
    "        if(float(y1[i]) < 80 and float(y1[i]) >= 60):\n",
    "            data1[21]=data1[21]+1\n",
    "        if(float(y1[i]) < 60 and float(y1[i]) >= 40):\n",
    "            data1[22]=data1[22]+1\n",
    "        if(float(y1[i]) < 40 and float(y1[i]) >= 20):\n",
    "            data1[23]=data1[23]+1\n",
    "        if(float(y1[i]) < 20):\n",
    "            data1[24]=data1[24]+1\n",
    "    for i in range(24):\n",
    "        if(data1[i]!=0):\n",
    "            percent[i]=data[i]/data1[i]\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    data3=Series(percent)\n",
    "    r = data3.corr(data4, method='spearman')\n",
    "    print(scipy.stats.spearmanr(percent, data2))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "    #r_199"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "8895596a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=-0.017662801272774847, pvalue=0.01661690255929491)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[3],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[16],\n",
    "                        names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                  #Y1是某一特征序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "\n",
    "\n",
    "    # 处理数据删除Nan\n",
    "    x1 = X1.dropna()\n",
    "    y1 = Y1.dropna()\n",
    "    n = x1.count()\n",
    "    x1.index = np.arange(n)\n",
    "    y1.index = np.arange(n)\n",
    "\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    r = x1.corr(y1, method='spearman')\n",
    "    print(scipy.stats.spearmanr(X1, Y1))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "\n",
    "    \n",
    "    #r_program"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "d26e4407",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=-0.04002784349769777, pvalue=5.650287535904315e-08)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[3],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[18],\n",
    "                        names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                  #Y1是某一特征序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "\n",
    "\n",
    "    # 处理数据删除Nan\n",
    "    x1 = X1.dropna()\n",
    "    y1 = Y1.dropna()\n",
    "    n = x1.count()\n",
    "    x1.index = np.arange(n)\n",
    "    y1.index = np.arange(n)\n",
    "\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    r = x1.corr(y1, method='spearman')\n",
    "    print(scipy.stats.spearmanr(X1, Y1))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "  \n",
    "    \n",
    "    #r_erase"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "8b4e2e4e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=-0.10647313968231233, pvalue=1.6736018186979695e-47)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[23],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/20191231.csv', usecols=[93],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                #X1是RUL序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "    \n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n1 = x1.count()\n",
    "    y1 = Y1.dropna()\n",
    "    n2 = Y1.count()\n",
    "    \n",
    "    data=[0 for i in range (25)]\n",
    "    data1=[0 for i in range (25)]\n",
    "    percent=[0 for i in range (25)]\n",
    "    \n",
    "    for i in range(0,n1,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n1 = n1 - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) == 100):\n",
    "            data[0]=data[0]+1\n",
    "        if(float(x1[i]) == 99):\n",
    "            data[1]=data[1]+1\n",
    "        if(float(x1[i]) == 98):\n",
    "            data[2]=data[2]+1\n",
    "        if(float(x1[i]) == 97):\n",
    "            data[3]=data[6]+1\n",
    "        if(float(x1[i]) == 96):\n",
    "            data[4]=data[4]+1\n",
    "        if(float(x1[i]) == 95):\n",
    "            data[5]=data[5]+1\n",
    "        if(float(x1[i]) == 94):\n",
    "            data[6]=data[6]+1\n",
    "        if(float(x1[i]) == 93):\n",
    "            data[7]=data[7]+1\n",
    "        if(float(x1[i]) == 92):\n",
    "            data[8]=data[8]+1\n",
    "        if(float(x1[i]) == 91):\n",
    "            data[9]=data[9]+1\n",
    "        if(float(x1[i]) == 90):\n",
    "            data[10]=data[10]+1\n",
    "        if(float(x1[i]) == 89):\n",
    "            data[11]=data[11]+1\n",
    "        if(float(x1[i]) == 88):\n",
    "            data[12]=data[12]+1\n",
    "        if(float(x1[i]) == 87):\n",
    "            data[13]=data[13]+1\n",
    "        if(float(x1[i]) == 86):\n",
    "            data[14]=data[14]+1\n",
    "        if(float(x1[i]) == 85):\n",
    "            data[15]=data[15]+1\n",
    "        if(float(x1[i]) == 84):\n",
    "            data[16]=data[16]+1\n",
    "        if(float(x1[i]) == 83):\n",
    "            data[17]=data[17]+1\n",
    "        if(float(x1[i]) == 82):\n",
    "            data[18]=data[18]+1\n",
    "        if(float(x1[i]) == 81):\n",
    "            data[19]=data[19]+1\n",
    "        if(float(x1[i]) == 80):\n",
    "            data[20]=data[20]+1\n",
    "        if(float(x1[i]) < 80 and float(x1[i]) >= 60):\n",
    "            data[21]=data[21]+1\n",
    "        if(float(x1[i]) < 60 and float(x1[i]) >= 40):\n",
    "            data[22]=data[22]+1\n",
    "        if(float(x1[i]) < 40 and float(x1[i]) >= 20):\n",
    "            data[23]=data[23]+1\n",
    "        if(float(x1[i]) < 20):\n",
    "            data[24]=data[24]+1\n",
    "    for i in range(0,n2,1):\n",
    "        if(y1[i] == '[nan]'):\n",
    "            n2 = n2 - 1\n",
    "            continue\n",
    "        y1[i] = y1[i].strip('[]')\n",
    "        if(float(y1[i]) == 100):\n",
    "            data1[0]=data1[0]+1\n",
    "        if(float(y1[i]) == 99):\n",
    "            data1[1]=data1[1]+1\n",
    "        if(float(y1[i]) == 98):\n",
    "            data1[2]=data1[2]+1\n",
    "        if(float(y1[i]) == 97):\n",
    "            data1[3]=data1[6]+1\n",
    "        if(float(y1[i]) == 96):\n",
    "            data1[4]=data1[4]+1\n",
    "        if(float(y1[i]) == 95):\n",
    "            data1[5]=data1[5]+1\n",
    "        if(float(y1[i]) == 94):\n",
    "            data1[6]=data1[6]+1\n",
    "        if(float(y1[i]) == 93):\n",
    "            data1[7]=data1[7]+1\n",
    "        if(float(y1[i]) == 92):\n",
    "            data1[8]=data1[8]+1\n",
    "        if(float(y1[i]) == 91):\n",
    "            data1[9]=data1[9]+1\n",
    "        if(float(y1[i]) == 90):\n",
    "            data1[10]=data1[10]+1\n",
    "        if(float(y1[i]) == 89):\n",
    "            data1[11]=data1[11]+1\n",
    "        if(float(y1[i]) == 88):\n",
    "            data1[12]=data1[12]+1\n",
    "        if(float(y1[i]) == 87):\n",
    "            data1[13]=data1[13]+1\n",
    "        if(float(y1[i]) == 86):\n",
    "            data1[14]=data1[14]+1\n",
    "        if(float(y1[i]) == 85):\n",
    "            data1[15]=data1[15]+1\n",
    "        if(float(y1[i]) == 84):\n",
    "            data1[16]=data1[16]+1\n",
    "        if(float(y1[i]) == 83):\n",
    "            data1[17]=data1[17]+1\n",
    "        if(float(y1[i]) == 82):\n",
    "            data1[18]=data1[18]+1\n",
    "        if(float(y1[i]) == 81):\n",
    "            data1[19]=data1[19]+1\n",
    "        if(float(y1[i]) == 80):\n",
    "            data1[20]=data1[20]+1\n",
    "        if(float(y1[i]) < 80 and float(y1[i]) >= 60):\n",
    "            data1[21]=data1[21]+1\n",
    "        if(float(y1[i]) < 60 and float(y1[i]) >= 40):\n",
    "            data1[22]=data1[22]+1\n",
    "        if(float(y1[i]) < 40 and float(y1[i]) >= 20):\n",
    "            data1[23]=data1[23]+1\n",
    "        if(float(y1[i]) < 20):\n",
    "            data1[24]=data1[24]+1\n",
    "    for i in range(24):\n",
    "        if(data1[i]!=0):\n",
    "            percent[i]=data[i]/data1[i]\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    data3=Series(percent)\n",
    "    r = data3.corr(data4, method='spearman')\n",
    "    print(scipy.stats.spearmanr(percent, data2))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "    #r_241"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "ca6efcb8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=0.6458843047499577, pvalue=0.0015628413375514175)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[25],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/20191231.csv', usecols=[95],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                #X1是RUL序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "    \n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n1 = x1.count()\n",
    "    y1 = Y1.dropna()\n",
    "    n2 = Y1.count()\n",
    "    \n",
    "    data=[0 for i in range (25)]\n",
    "    data1=[0 for i in range (25)]\n",
    "    percent=[0 for i in range (25)]\n",
    "    \n",
    "    for i in range(0,n1,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n1 = n1 - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) == 100):\n",
    "            data[0]=data[0]+1\n",
    "        if(float(x1[i]) == 99):\n",
    "            data[1]=data[1]+1\n",
    "        if(float(x1[i]) == 98):\n",
    "            data[2]=data[2]+1\n",
    "        if(float(x1[i]) == 97):\n",
    "            data[3]=data[6]+1\n",
    "        if(float(x1[i]) == 96):\n",
    "            data[4]=data[4]+1\n",
    "        if(float(x1[i]) == 95):\n",
    "            data[5]=data[5]+1\n",
    "        if(float(x1[i]) == 94):\n",
    "            data[6]=data[6]+1\n",
    "        if(float(x1[i]) == 93):\n",
    "            data[7]=data[7]+1\n",
    "        if(float(x1[i]) == 92):\n",
    "            data[8]=data[8]+1\n",
    "        if(float(x1[i]) == 91):\n",
    "            data[9]=data[9]+1\n",
    "        if(float(x1[i]) == 90):\n",
    "            data[10]=data[10]+1\n",
    "        if(float(x1[i]) == 89):\n",
    "            data[11]=data[11]+1\n",
    "        if(float(x1[i]) == 88):\n",
    "            data[12]=data[12]+1\n",
    "        if(float(x1[i]) == 87):\n",
    "            data[13]=data[13]+1\n",
    "        if(float(x1[i]) == 86):\n",
    "            data[14]=data[14]+1\n",
    "        if(float(x1[i]) == 85):\n",
    "            data[15]=data[15]+1\n",
    "        if(float(x1[i]) == 84):\n",
    "            data[16]=data[16]+1\n",
    "        if(float(x1[i]) == 83):\n",
    "            data[17]=data[17]+1\n",
    "        if(float(x1[i]) == 82):\n",
    "            data[18]=data[18]+1\n",
    "        if(float(x1[i]) == 81):\n",
    "            data[19]=data[19]+1\n",
    "        if(float(x1[i]) == 80):\n",
    "            data[20]=data[20]+1\n",
    "        if(float(x1[i]) < 80 and float(x1[i]) >= 60):\n",
    "            data[21]=data[21]+1\n",
    "        if(float(x1[i]) < 60 and float(x1[i]) >= 40):\n",
    "            data[22]=data[22]+1\n",
    "        if(float(x1[i]) < 40 and float(x1[i]) >= 20):\n",
    "            data[23]=data[23]+1\n",
    "        if(float(x1[i]) < 20):\n",
    "            data[24]=data[24]+1\n",
    "    for i in range(0,n2,1):\n",
    "        if(y1[i] == '[nan]'):\n",
    "            n2 = n2 - 1\n",
    "            continue\n",
    "        y1[i] = y1[i].strip('[]')\n",
    "        if(float(y1[i]) == 100):\n",
    "            data1[0]=data1[0]+1\n",
    "        if(float(y1[i]) == 99):\n",
    "            data1[1]=data1[1]+1\n",
    "        if(float(y1[i]) == 98):\n",
    "            data1[2]=data1[2]+1\n",
    "        if(float(y1[i]) == 97):\n",
    "            data1[3]=data1[6]+1\n",
    "        if(float(y1[i]) == 96):\n",
    "            data1[4]=data1[4]+1\n",
    "        if(float(y1[i]) == 95):\n",
    "            data1[5]=data1[5]+1\n",
    "        if(float(y1[i]) == 94):\n",
    "            data1[6]=data1[6]+1\n",
    "        if(float(y1[i]) == 93):\n",
    "            data1[7]=data1[7]+1\n",
    "        if(float(y1[i]) == 92):\n",
    "            data1[8]=data1[8]+1\n",
    "        if(float(y1[i]) == 91):\n",
    "            data1[9]=data1[9]+1\n",
    "        if(float(y1[i]) == 90):\n",
    "            data1[10]=data1[10]+1\n",
    "        if(float(y1[i]) == 89):\n",
    "            data1[11]=data1[11]+1\n",
    "        if(float(y1[i]) == 88):\n",
    "            data1[12]=data1[12]+1\n",
    "        if(float(y1[i]) == 87):\n",
    "            data1[13]=data1[13]+1\n",
    "        if(float(y1[i]) == 86):\n",
    "            data1[14]=data1[14]+1\n",
    "        if(float(y1[i]) == 85):\n",
    "            data1[15]=data1[15]+1\n",
    "        if(float(y1[i]) == 84):\n",
    "            data1[16]=data1[16]+1\n",
    "        if(float(y1[i]) == 83):\n",
    "            data1[17]=data1[17]+1\n",
    "        if(float(y1[i]) == 82):\n",
    "            data1[18]=data1[18]+1\n",
    "        if(float(y1[i]) == 81):\n",
    "            data1[19]=data1[19]+1\n",
    "        if(float(y1[i]) == 80):\n",
    "            data1[20]=data1[20]+1\n",
    "        if(float(y1[i]) < 80 and float(y1[i]) >= 60):\n",
    "            data1[21]=data1[21]+1\n",
    "        if(float(y1[i]) < 60 and float(y1[i]) >= 40):\n",
    "            data1[22]=data1[22]+1\n",
    "        if(float(y1[i]) < 40 and float(y1[i]) >= 20):\n",
    "            data1[23]=data1[23]+1\n",
    "        if(float(y1[i]) < 20):\n",
    "            data1[24]=data1[24]+1\n",
    "    for i in range(24):\n",
    "        if(data1[i]!=0):\n",
    "            percent[i]=data[i]/data1[i]\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    data3=Series(percent)\n",
    "    r = data3.corr(data4, method='spearman')\n",
    "    print(scipy.stats.spearmanr(percent, data2))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "    #r_242"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "4f336290",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=-0.0879062782666543, pvalue=7.123657054130177e-33)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[3],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[26],\n",
    "                        names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                  #Y1是某一特征序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "\n",
    "\n",
    "    # 处理数据删除Nan\n",
    "    x1 = X1.dropna()\n",
    "    y1 = Y1.dropna()\n",
    "    n = x1.count()\n",
    "    x1.index = np.arange(n)\n",
    "    y1.index = np.arange(n)\n",
    "\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    r = X1.corr(Y1, method='spearman')\n",
    "    print(scipy.stats.spearmanr(X1, Y1))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "    #r_242"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "0f8729ea",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=-0.06049536327560073, pvalue=2.2109107230889272e-16)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[27],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/20191231.csv', usecols=[19],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                #X1是RUL序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "    \n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n1 = x1.count()\n",
    "    y1 = Y1.dropna()\n",
    "    n2 = Y1.count()\n",
    "    \n",
    "    data=[0 for i in range (25)]\n",
    "    data1=[0 for i in range (25)]\n",
    "    percent=[0 for i in range (25)]\n",
    "    \n",
    "    for i in range(0,n1,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n1 = n1 - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) == 100):\n",
    "            data[0]=data[0]+1\n",
    "        if(float(x1[i]) == 99):\n",
    "            data[1]=data[1]+1\n",
    "        if(float(x1[i]) == 98):\n",
    "            data[2]=data[2]+1\n",
    "        if(float(x1[i]) == 97):\n",
    "            data[3]=data[6]+1\n",
    "        if(float(x1[i]) == 96):\n",
    "            data[4]=data[4]+1\n",
    "        if(float(x1[i]) == 95):\n",
    "            data[5]=data[5]+1\n",
    "        if(float(x1[i]) == 94):\n",
    "            data[6]=data[6]+1\n",
    "        if(float(x1[i]) == 93):\n",
    "            data[7]=data[7]+1\n",
    "        if(float(x1[i]) == 92):\n",
    "            data[8]=data[8]+1\n",
    "        if(float(x1[i]) == 91):\n",
    "            data[9]=data[9]+1\n",
    "        if(float(x1[i]) == 90):\n",
    "            data[10]=data[10]+1\n",
    "        if(float(x1[i]) == 89):\n",
    "            data[11]=data[11]+1\n",
    "        if(float(x1[i]) == 88):\n",
    "            data[12]=data[12]+1\n",
    "        if(float(x1[i]) == 87):\n",
    "            data[13]=data[13]+1\n",
    "        if(float(x1[i]) == 86):\n",
    "            data[14]=data[14]+1\n",
    "        if(float(x1[i]) == 85):\n",
    "            data[15]=data[15]+1\n",
    "        if(float(x1[i]) == 84):\n",
    "            data[16]=data[16]+1\n",
    "        if(float(x1[i]) == 83):\n",
    "            data[17]=data[17]+1\n",
    "        if(float(x1[i]) == 82):\n",
    "            data[18]=data[18]+1\n",
    "        if(float(x1[i]) == 81):\n",
    "            data[19]=data[19]+1\n",
    "        if(float(x1[i]) == 80):\n",
    "            data[20]=data[20]+1\n",
    "        if(float(x1[i]) < 80 and float(x1[i]) >= 60):\n",
    "            data[21]=data[21]+1\n",
    "        if(float(x1[i]) < 60 and float(x1[i]) >= 40):\n",
    "            data[22]=data[22]+1\n",
    "        if(float(x1[i]) < 40 and float(x1[i]) >= 20):\n",
    "            data[23]=data[23]+1\n",
    "        if(float(x1[i]) < 20):\n",
    "            data[24]=data[24]+1\n",
    "    for i in range(0,n2,1):\n",
    "        if(y1[i] == '[nan]'):\n",
    "            n2 = n2 - 1\n",
    "            continue\n",
    "        y1[i] = y1[i].strip('[]')\n",
    "        if(float(y1[i]) == 100):\n",
    "            data1[0]=data1[0]+1\n",
    "        if(float(y1[i]) == 99):\n",
    "            data1[1]=data1[1]+1\n",
    "        if(float(y1[i]) == 98):\n",
    "            data1[2]=data1[2]+1\n",
    "        if(float(y1[i]) == 97):\n",
    "            data1[3]=data1[6]+1\n",
    "        if(float(y1[i]) == 96):\n",
    "            data1[4]=data1[4]+1\n",
    "        if(float(y1[i]) == 95):\n",
    "            data1[5]=data1[5]+1\n",
    "        if(float(y1[i]) == 94):\n",
    "            data1[6]=data1[6]+1\n",
    "        if(float(y1[i]) == 93):\n",
    "            data1[7]=data1[7]+1\n",
    "        if(float(y1[i]) == 92):\n",
    "            data1[8]=data1[8]+1\n",
    "        if(float(y1[i]) == 91):\n",
    "            data1[9]=data1[9]+1\n",
    "        if(float(y1[i]) == 90):\n",
    "            data1[10]=data1[10]+1\n",
    "        if(float(y1[i]) == 89):\n",
    "            data1[11]=data1[11]+1\n",
    "        if(float(y1[i]) == 88):\n",
    "            data1[12]=data1[12]+1\n",
    "        if(float(y1[i]) == 87):\n",
    "            data1[13]=data1[13]+1\n",
    "        if(float(y1[i]) == 86):\n",
    "            data1[14]=data1[14]+1\n",
    "        if(float(y1[i]) == 85):\n",
    "            data1[15]=data1[15]+1\n",
    "        if(float(y1[i]) == 84):\n",
    "            data1[16]=data1[16]+1\n",
    "        if(float(y1[i]) == 83):\n",
    "            data1[17]=data1[17]+1\n",
    "        if(float(y1[i]) == 82):\n",
    "            data1[18]=data1[18]+1\n",
    "        if(float(y1[i]) == 81):\n",
    "            data1[19]=data1[19]+1\n",
    "        if(float(y1[i]) == 80):\n",
    "            data1[20]=data1[20]+1\n",
    "        if(float(y1[i]) < 80 and float(y1[i]) >= 60):\n",
    "            data1[21]=data1[21]+1\n",
    "        if(float(y1[i]) < 60 and float(y1[i]) >= 40):\n",
    "            data1[22]=data1[22]+1\n",
    "        if(float(y1[i]) < 40 and float(y1[i]) >= 20):\n",
    "            data1[23]=data1[23]+1\n",
    "        if(float(y1[i]) < 20):\n",
    "            data1[24]=data1[24]+1\n",
    "    for i in range(24):\n",
    "        if(data1[i]!=0):\n",
    "            percent[i]=data[i]/data1[i]\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    data3=Series(percent)\n",
    "    r = data3.corr(data4, method='spearman')\n",
    "    print(scipy.stats.spearmanr(percent, data2))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "    #r_9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "a7dfb77f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=0.014861614179462955, pvalue=0.04388480453964661)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[29],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/20191231.csv', usecols=[25],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                #X1是RUL序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "    \n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n1 = x1.count()\n",
    "    y1 = Y1.dropna()\n",
    "    n2 = Y1.count()\n",
    "    \n",
    "    data=[0 for i in range (25)]\n",
    "    data1=[0 for i in range (25)]\n",
    "    percent=[0 for i in range (25)]\n",
    "    \n",
    "    for i in range(0,n1,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n1 = n1 - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) == 100):\n",
    "            data[0]=data[0]+1\n",
    "        if(float(x1[i]) == 99):\n",
    "            data[1]=data[1]+1\n",
    "        if(float(x1[i]) == 98):\n",
    "            data[2]=data[2]+1\n",
    "        if(float(x1[i]) == 97):\n",
    "            data[3]=data[6]+1\n",
    "        if(float(x1[i]) == 96):\n",
    "            data[4]=data[4]+1\n",
    "        if(float(x1[i]) == 95):\n",
    "            data[5]=data[5]+1\n",
    "        if(float(x1[i]) == 94):\n",
    "            data[6]=data[6]+1\n",
    "        if(float(x1[i]) == 93):\n",
    "            data[7]=data[7]+1\n",
    "        if(float(x1[i]) == 92):\n",
    "            data[8]=data[8]+1\n",
    "        if(float(x1[i]) == 91):\n",
    "            data[9]=data[9]+1\n",
    "        if(float(x1[i]) == 90):\n",
    "            data[10]=data[10]+1\n",
    "        if(float(x1[i]) == 89):\n",
    "            data[11]=data[11]+1\n",
    "        if(float(x1[i]) == 88):\n",
    "            data[12]=data[12]+1\n",
    "        if(float(x1[i]) == 87):\n",
    "            data[13]=data[13]+1\n",
    "        if(float(x1[i]) == 86):\n",
    "            data[14]=data[14]+1\n",
    "        if(float(x1[i]) == 85):\n",
    "            data[15]=data[15]+1\n",
    "        if(float(x1[i]) == 84):\n",
    "            data[16]=data[16]+1\n",
    "        if(float(x1[i]) == 83):\n",
    "            data[17]=data[17]+1\n",
    "        if(float(x1[i]) == 82):\n",
    "            data[18]=data[18]+1\n",
    "        if(float(x1[i]) == 81):\n",
    "            data[19]=data[19]+1\n",
    "        if(float(x1[i]) == 80):\n",
    "            data[20]=data[20]+1\n",
    "        if(float(x1[i]) < 80 and float(x1[i]) >= 60):\n",
    "            data[21]=data[21]+1\n",
    "        if(float(x1[i]) < 60 and float(x1[i]) >= 40):\n",
    "            data[22]=data[22]+1\n",
    "        if(float(x1[i]) < 40 and float(x1[i]) >= 20):\n",
    "            data[23]=data[23]+1\n",
    "        if(float(x1[i]) < 20):\n",
    "            data[24]=data[24]+1\n",
    "    for i in range(0,n2,1):\n",
    "        if(y1[i] == '[nan]'):\n",
    "            n2 = n2 - 1\n",
    "            continue\n",
    "        y1[i] = y1[i].strip('[]')\n",
    "        if(float(y1[i]) == 100):\n",
    "            data1[0]=data1[0]+1\n",
    "        if(float(y1[i]) == 99):\n",
    "            data1[1]=data1[1]+1\n",
    "        if(float(y1[i]) == 98):\n",
    "            data1[2]=data1[2]+1\n",
    "        if(float(y1[i]) == 97):\n",
    "            data1[3]=data1[6]+1\n",
    "        if(float(y1[i]) == 96):\n",
    "            data1[4]=data1[4]+1\n",
    "        if(float(y1[i]) == 95):\n",
    "            data1[5]=data1[5]+1\n",
    "        if(float(y1[i]) == 94):\n",
    "            data1[6]=data1[6]+1\n",
    "        if(float(y1[i]) == 93):\n",
    "            data1[7]=data1[7]+1\n",
    "        if(float(y1[i]) == 92):\n",
    "            data1[8]=data1[8]+1\n",
    "        if(float(y1[i]) == 91):\n",
    "            data1[9]=data1[9]+1\n",
    "        if(float(y1[i]) == 90):\n",
    "            data1[10]=data1[10]+1\n",
    "        if(float(y1[i]) == 89):\n",
    "            data1[11]=data1[11]+1\n",
    "        if(float(y1[i]) == 88):\n",
    "            data1[12]=data1[12]+1\n",
    "        if(float(y1[i]) == 87):\n",
    "            data1[13]=data1[13]+1\n",
    "        if(float(y1[i]) == 86):\n",
    "            data1[14]=data1[14]+1\n",
    "        if(float(y1[i]) == 85):\n",
    "            data1[15]=data1[15]+1\n",
    "        if(float(y1[i]) == 84):\n",
    "            data1[16]=data1[16]+1\n",
    "        if(float(y1[i]) == 83):\n",
    "            data1[17]=data1[17]+1\n",
    "        if(float(y1[i]) == 82):\n",
    "            data1[18]=data1[18]+1\n",
    "        if(float(y1[i]) == 81):\n",
    "            data1[19]=data1[19]+1\n",
    "        if(float(y1[i]) == 80):\n",
    "            data1[20]=data1[20]+1\n",
    "        if(float(y1[i]) < 80 and float(y1[i]) >= 60):\n",
    "            data1[21]=data1[21]+1\n",
    "        if(float(y1[i]) < 60 and float(y1[i]) >= 40):\n",
    "            data1[22]=data1[22]+1\n",
    "        if(float(y1[i]) < 40 and float(y1[i]) >= 20):\n",
    "            data1[23]=data1[23]+1\n",
    "        if(float(y1[i]) < 20):\n",
    "            data1[24]=data1[24]+1\n",
    "    for i in range(24):\n",
    "        if(data1[i]!=0):\n",
    "            percent[i]=data[i]/data1[i]\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    data3=Series(percent)\n",
    "    r = data3.corr(data4, method='spearman')\n",
    "    print(scipy.stats.spearmanr(percent, data2))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "    #r_12"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "7d2d3375",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SpearmanrResult(correlation=0.01704281556151136, pvalue=0.020833192872595812)\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[31],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    Y1 = pd.read_csv(r'./data/20191231.csv', usecols=[37],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    Y1 = np.array(Y1)                                #X1是RUL序列\n",
    "    Y1 = Y1.tolist()\n",
    "    Y1 = pd.Series(Y1)\n",
    "    Y1 = Y1.astype('str')\n",
    "    \n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n1 = x1.count()\n",
    "    y1 = Y1.dropna()\n",
    "    n2 = Y1.count()\n",
    "    \n",
    "    data=[0 for i in range (25)]\n",
    "    data1=[0 for i in range (25)]\n",
    "    percent=[0 for i in range (25)]\n",
    "    \n",
    "    for i in range(0,n1,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n1 = n1 - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) == 100):\n",
    "            data[0]=data[0]+1\n",
    "        if(float(x1[i]) == 99):\n",
    "            data[1]=data[1]+1\n",
    "        if(float(x1[i]) == 98):\n",
    "            data[2]=data[2]+1\n",
    "        if(float(x1[i]) == 97):\n",
    "            data[3]=data[6]+1\n",
    "        if(float(x1[i]) == 96):\n",
    "            data[4]=data[4]+1\n",
    "        if(float(x1[i]) == 95):\n",
    "            data[5]=data[5]+1\n",
    "        if(float(x1[i]) == 94):\n",
    "            data[6]=data[6]+1\n",
    "        if(float(x1[i]) == 93):\n",
    "            data[7]=data[7]+1\n",
    "        if(float(x1[i]) == 92):\n",
    "            data[8]=data[8]+1\n",
    "        if(float(x1[i]) == 91):\n",
    "            data[9]=data[9]+1\n",
    "        if(float(x1[i]) == 90):\n",
    "            data[10]=data[10]+1\n",
    "        if(float(x1[i]) == 89):\n",
    "            data[11]=data[11]+1\n",
    "        if(float(x1[i]) == 88):\n",
    "            data[12]=data[12]+1\n",
    "        if(float(x1[i]) == 87):\n",
    "            data[13]=data[13]+1\n",
    "        if(float(x1[i]) == 86):\n",
    "            data[14]=data[14]+1\n",
    "        if(float(x1[i]) == 85):\n",
    "            data[15]=data[15]+1\n",
    "        if(float(x1[i]) == 84):\n",
    "            data[16]=data[16]+1\n",
    "        if(float(x1[i]) == 83):\n",
    "            data[17]=data[17]+1\n",
    "        if(float(x1[i]) == 82):\n",
    "            data[18]=data[18]+1\n",
    "        if(float(x1[i]) == 81):\n",
    "            data[19]=data[19]+1\n",
    "        if(float(x1[i]) == 80):\n",
    "            data[20]=data[20]+1\n",
    "        if(float(x1[i]) < 80 and float(x1[i]) >= 60):\n",
    "            data[21]=data[21]+1\n",
    "        if(float(x1[i]) < 60 and float(x1[i]) >= 40):\n",
    "            data[22]=data[22]+1\n",
    "        if(float(x1[i]) < 40 and float(x1[i]) >= 20):\n",
    "            data[23]=data[23]+1\n",
    "        if(float(x1[i]) < 20):\n",
    "            data[24]=data[24]+1\n",
    "    for i in range(0,n2,1):\n",
    "        if(y1[i] == '[nan]'):\n",
    "            n2 = n2 - 1\n",
    "            continue\n",
    "        y1[i] = y1[i].strip('[]')\n",
    "        if(float(y1[i]) == 100):\n",
    "            data1[0]=data1[0]+1\n",
    "        if(float(y1[i]) == 99):\n",
    "            data1[1]=data1[1]+1\n",
    "        if(float(y1[i]) == 98):\n",
    "            data1[2]=data1[2]+1\n",
    "        if(float(y1[i]) == 97):\n",
    "            data1[3]=data1[6]+1\n",
    "        if(float(y1[i]) == 96):\n",
    "            data1[4]=data1[4]+1\n",
    "        if(float(y1[i]) == 95):\n",
    "            data1[5]=data1[5]+1\n",
    "        if(float(y1[i]) == 94):\n",
    "            data1[6]=data1[6]+1\n",
    "        if(float(y1[i]) == 93):\n",
    "            data1[7]=data1[7]+1\n",
    "        if(float(y1[i]) == 92):\n",
    "            data1[8]=data1[8]+1\n",
    "        if(float(y1[i]) == 91):\n",
    "            data1[9]=data1[9]+1\n",
    "        if(float(y1[i]) == 90):\n",
    "            data1[10]=data1[10]+1\n",
    "        if(float(y1[i]) == 89):\n",
    "            data1[11]=data1[11]+1\n",
    "        if(float(y1[i]) == 88):\n",
    "            data1[12]=data1[12]+1\n",
    "        if(float(y1[i]) == 87):\n",
    "            data1[13]=data1[13]+1\n",
    "        if(float(y1[i]) == 86):\n",
    "            data1[14]=data1[14]+1\n",
    "        if(float(y1[i]) == 85):\n",
    "            data1[15]=data1[15]+1\n",
    "        if(float(y1[i]) == 84):\n",
    "            data1[16]=data1[16]+1\n",
    "        if(float(y1[i]) == 83):\n",
    "            data1[17]=data1[17]+1\n",
    "        if(float(y1[i]) == 82):\n",
    "            data1[18]=data1[18]+1\n",
    "        if(float(y1[i]) == 81):\n",
    "            data1[19]=data1[19]+1\n",
    "        if(float(y1[i]) == 80):\n",
    "            data1[20]=data1[20]+1\n",
    "        if(float(y1[i]) < 80 and float(y1[i]) >= 60):\n",
    "            data1[21]=data1[21]+1\n",
    "        if(float(y1[i]) < 60 and float(y1[i]) >= 40):\n",
    "            data1[22]=data1[22]+1\n",
    "        if(float(y1[i]) < 40 and float(y1[i]) >= 20):\n",
    "            data1[23]=data1[23]+1\n",
    "        if(float(y1[i]) < 20):\n",
    "            data1[24]=data1[24]+1\n",
    "    for i in range(24):\n",
    "        if(data1[i]!=0):\n",
    "            percent[i]=data[i]/data1[i]\n",
    "    # 分部计算\n",
    "    # d = (x1.sort_values().index - y1.sort_values().index) ** 2\n",
    "    # dd = d.to_series().sum()\n",
    "    # p = 1 - n * dd / (n * (n ** 2 - 1))\n",
    "    # s.corr()函数计算\n",
    "    data3=Series(percent)\n",
    "    r = data3.corr(data4, method='spearman')\n",
    "    print(scipy.stats.spearmanr(percent, data2))#斯皮尔曼相关系数，r=0时无关，r>0正相关，r<0负相关，绝对值越大相关性越强\n",
    "    \n",
    "    #r_174"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "805f7ca2",
   "metadata": {},
   "outputs": [],
   "source": [
    "    s5=-0.19426813207986557\n",
    "    s183=0.24107182853218856\n",
    "    s184=-0.028915869481607386\n",
    "    s187=0.3096160832596756\n",
    "    s195=-0.08165142495911813\n",
    "    s197=-0.006890574419366871\n",
    "    s199=0.004231332708718793\n",
    "    program=-0.017662801272774847\n",
    "    erase=-0.04002784349769777\n",
    "    s241=-0.10647313968231233\n",
    "    s242=-0.0879062782666543\n",
    "    s9=-0.06049536327560073\n",
    "    s12=0.014861614179462955\n",
    "    s174=0.01704281556151136"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "d68db015",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1350x450 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "    name_list = ['s5','s183','s184','s187','s195','s197','s199','program','erase','s241','s242','s9','s12','s174']\n",
    "    correlation_list = [-0.19,0.24,-0.03,0.3,-0.08,-0.01,0.00,-0.01,-0.04,-0.1,-0.08,-0.06,0.01,0.02]\n",
    "    plt.figure(figsize=(9,3),dpi=150)\n",
    "    x=range(len(name_list))\n",
    "    plt.xticks(x,name_list)\n",
    "    plt.bar(x, correlation_list, width=0.5, color=['#1E90FF'])\n",
    "    #修饰\n",
    "    plt.title(\"SRCC\") #添加标题\n",
    "    plt.grid(linestyle=\"--\", alpha=0.2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "id": "f5ef3bbd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9941224489795918\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[5],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 80):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_5 重置扇区计数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "id": "980f1317",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9949943388355879\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[7],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_183 SATA降级运行计数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "db762345",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9990082644628099\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[9],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 80):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "          \n",
    "    #n_184 终端校验出错"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "ddd5cdf3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9993939393939394\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[11],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_187 报告不可纠正错误"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "fad75c56",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9992407465991775\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[13],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_195 硬件ECCh恢复"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "115fc604",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[15],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_197 等候重定的扇区计数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "aefba2e1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9982370117348907\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[17],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_199"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "id": "bc3e112c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9982920110192838\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[19],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_program"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "id": "7ccad25d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9992837465564738\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[21],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_erase"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "id": "202753c0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9841658504733921\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[22],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_blocks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "id": "627bdc3c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.4294969512195122\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[23],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_wearouts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "d49d7df1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9994167962674961\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[25],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_241"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "0b5189a2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9997897392767031\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[27],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_242"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "id": "4fd492ee",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8857687074829932\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[29],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "id": "ae72b509",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9997796021819384\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[31],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_12"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "id": "12e83399",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n"
     ]
    }
   ],
   "source": [
    "    X1 = pd.read_csv(r'./data/ssd_failure_tag.csv', usecols=[33],\n",
    "                       names=None)  # 读取项目名称列,不要列名\n",
    "    X1 = np.array(X1)                                #X1是RUL序列\n",
    "    X1 = X1.tolist()\n",
    "    X1 = pd.Series(X1)\n",
    "    X1 = X1.astype('str')\n",
    "    \n",
    "    x1 = X1.dropna()\n",
    "    n = x1.count()\n",
    "    \n",
    "    exe = 0\n",
    "    \n",
    "    for i in range(0,n,1):\n",
    "        if(x1[i] == '[nan]'):\n",
    "            n = n - 1\n",
    "            continue\n",
    "        x1[i] = x1[i].strip('[]')\n",
    "        if(float(x1[i]) >= 98):\n",
    "            exe = exe + 1\n",
    "    \n",
    "    percent = exe/n\n",
    "    print(percent)\n",
    "    \n",
    "    #n_174"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "id": "c6b52012",
   "metadata": {},
   "outputs": [
    {
     "ename": "SyntaxError",
     "evalue": "invalid syntax (900983062.py, line 2)",
     "output_type": "error",
     "traceback": [
      "\u001b[1;36m  Input \u001b[1;32mIn [133]\u001b[1;36m\u001b[0m\n\u001b[1;33m    percent_n_5=\u001b[0m\n\u001b[1;37m                ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n"
     ]
    }
   ],
   "source": [
    "    percent_n_5=0.9941224489795918\n",
    "    percent_n_183=0.9949943388355879\n",
    "    percent_n_184=0.9990082644628099\n",
    "    percent_n_187=0.9993939393939394\n",
    "    percent_n_195=0.9992407465991775\n",
    "    percent_n_197=1.0\n",
    "    percent_n_199=0.9982370117348907\n",
    "    percent_n_program=0.9982920110192838\n",
    "    percent_n_erase=0.9992837465564738\n",
    "    percent_n_blocks=0.9841658504733921\n",
    "    percent_n_wearouts=0.4294969512195122\n",
    "    percent_n_241=0.9994167962674961\n",
    "    percent_n_242=0.9997897392767031\n",
    "    percent_n_9=0.8857687074829932\n",
    "    percent_n_12=0.9997796021819384\n",
    "    percent_n_174=1.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "6036e2aa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1350x450 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "    name_list = ['p5','p183','p184','p187','p195','p197','p199','program','erase','p241','p242','p9','p12','p174']\n",
    "    percent_list = [0.994,0.995,0.999,0.999,0.999,1.0,0.998,0.998,0.999,0.999,0.999,0.886,0.999,1.0]\n",
    "    plt.figure(figsize=(9,3),dpi=150)\n",
    "    x=range(len(name_list))\n",
    "    plt.xticks(x,name_list)\n",
    "    plt.bar(x, percent_list, width=0.5, color=['#1E90FF'])\n",
    "    #修饰\n",
    "    plt.title(\"PERCENT \") #添加标题\n",
    "    plt.grid(linestyle=\"--\", alpha=0.2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "69c14add",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cf463079",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6aab38fe",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
